/*
 * Tabla.h
 *
 *  Created on: Oct 12, 2012
 *      Author: romina
 */

#ifndef TABLA_H_
#define TABLA_H_

#include <ios>
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include "../Comunes/ArchivosManager.h"
#include "../Comunes/Constantes.h"
#include "../Comunes/Palabra.h"

using namespace archivos;
using namespace palabra;
using namespace std;

class Tabla : ArchivoBinario{
	int tamanio;
	void calcular_tamanio();
	string formatear_tamanio();
public:
	Tabla(string path);
	void referencia_inicial(int id_cubo);
	void reemplazar_desde(int pos, int id_cubo, int dispersion);
	void duplicar();
	void reemplazar(int posicion, int id_cubo_nuevo);
	//devuelve el tamanio
	int get_tamanio();
	//recibe el resultado de la funcion hash
	//devuelve el numero de bloque encontrado en la tabla
	int get_id_cubo(int posicion);

	string toString();
	//si el tamanio de la tabla es cero devuelve true
	bool vacia();
	virtual ~Tabla();
};

#endif /* TABLA_H_ */
